Machine vision systems are frequently used in contexts that require the system to capture a two dimensional image of a physical object and locate within that image some aspects or features that are to be analyzed, to determine position of the features and effect alignment or a particular orientation of the physical object. In such contexts, vision systems are typically implemented in conjunction with "pick-and-place" machinery that physically manipulates or picks up the physical object, moves the object past a camera of the vision system which captures the two dimensional image, and places the object in accordance with computations that determine the proper X, Y translation and rotation of the object.
Known systems employ what may be referred to as "feature based" methods which locate features, such as component leads or interconnects of an electronic device, within the captured image of the object to determine a current position and/or effect alignment of the electronic device. Current position and/or alignment of the electronic device being manipulated or inspected is effected in "physical space", which is an absolute coordinate frame within which the object actually resides.
Current position and/or alignment of the electronic device in "physical space" is effected based on a model of the electronic device, i.e. standard of the physical object. Accordingly, implementation of feature based methods typically requires as an input to the vision system a set of model features acquired from the model, in accordance with an arbitrary coordinate system or "model space".
An image of the electronic device and its relevant features is acquired by the vision system, in accordance with an "image space" coordinate system, as the device is manipulated by the pick-and-place machinery. The acquired or captured image provides a set of image features (analogous to physical features) which are input to the vision system. The image is typically input as point information relative to the image space coordinate system. Knowing the two dimensional linear mapping between physical space and image space, the set of model features and the set of image features can be processed according to known algorithms to determine "correspondence", i.e. a direct mapping of respective two dimensional spatial relationships, between model features and image features. Correspondence between model and image features, or equivalently, a two dimensional rigid transform that maps model features to their corresponding features in image space can then be used, knowing the two dimensional linear mapping between physical space and image space, to determine the spatial relationship between model space and physical space in order to position/align features of the object in physical space in accordance with model features in model space.
The practical realities of implementing vision systems with feature based methods used to locate features, such as component leads or interconnects of an electronic device, dictates that appropriate algorithms be designed and optimized for location/inspection of selected features. The efficacy of the system implemented requires that the appropriate algorithms take into consideration variables associated with the type or kind of features upon which correspondence will be based. Similarly the efficacy of the system requires that the appropriate algorithms take into consideration the physical background on which the selected features are located, among other things.
U.S. patent application Ser. No. 08/816,279 entitled METHOD AND APPARATUS FOR LOCATING AND INSPECTING A TWO DIMENSIONAL IMAGE INCLUDING CO-LINEAR FEATURES ("the '279 application"), filed on Mar. 13, 1997, the teachings of which are incorporated herein by reference, discloses a method and apparatus that optimizes the process of locating/aligning electronic components based on at least one set of regularly spaced co-linear features. In this process for aligning/locating surface mount electronic devices ("SMD"), a selected set of regularly spaced co-linear SMD component leads is used to quickly correlate a set of image points and a set of model points which are likely to correspond to each other. A one-to-one correspondence of a plurality of model points to a plurality of image points yields a single possible location for the object/device in the image, based on the image set to model set correspondence. The single possible location is checked for correctness, and if incorrect, a next possible set to set correspondence is tested until the correct location is found.
In the implementation in the '279 application, a model is preprocessed to determine all sets of co-linear model features. An image feature finder, tailored or selected to find the specific type of component lead features, is implemented to extract information relating to component lead features in the image. A co-linear feature finding process finds lines of regularly spaced co-linear image features by identifying all groups of three points, testing each group of three points for co-linearity and frequency in accordance with the geometry of the model, and testing all other image features for membership in established lines based on co-linearity and frequency. A position hypothesis generator iteratively tests image line feature information against all possible model sets (i.e. lines of features) that it might match to establish one-to-one correspondence, which indicates that each feature of the set of co-linear image features is spatially correlated to or aligned with each feature of a set of co-linear features in the model. Two dimensional rigid transforms are used to effect a respective hypothesized position image for each set correspondence. Each hypothesized position image is passed to a verification process which tests the hypothesized position image against the captured image to see if it is a correct hypothesis, i.e. if all of the image features are present and in their proper locations.
The implementation of the '279 application is optimized for processing a particular type of electronic device(s) More specifically, the '279 application provides a high speed mechanism for inspecting and positioning surface mount electronic devices having at least one set of co-linear leads. The efficacy of the various elements of the implementation in the '279 application is limited in applications that are not suited to processing information relating to sets of co-linear leads.
Implementations are known for inspecting/locating electronic components based on other than sets of regularly spaced co-linear surface mount leads. An implementation known in the art for using vision systems to inspect/locate Ball Grid Array surface mount devices is disclosed in ACCURATE PLACEMENT OF BALL GRID ARRAY PACKAGES, Deley, M. Ramsey, C. C., Quad Systems Corp., Electronic Packaging & Production, April 1996. Ball Grid Array devices (BGA) are surface mount devices in a package having an exterior mounting surface that consists of a set of solder balls arranged in a grid pattern. The solder balls, when appropriately positioned and subjected to appropriate temperatures, effect interconnections for attaching the BGA device to other electronic components, such as Printed Circuit Boards (PCBs).
To automatically align and place BGA devices on a printed circuit board, an automated vision system is used in a pick-and-place machine to determine the X, Y translations and rotation of the device with respect to a fixed reference point on a mounter of the pick-and-place machine. The referenced known BGA implementation finds the global position and orientation of the ball grid based on five balls located in each corner of the grid. The accurate position of all the balls is then determined by an extended attribute tree search.
The success of this known approach relies on the corner balls being located correctly. Locating selected balls in a grid of balls is not always an easy task to accomplish. Variability in lighting conditions leads to difficulty in discriminating balls from noise, such as may be created by reflected light, shadowing or the like in an image. Under less-than-adequate lighting, a ball can easily be missed. Similarly, pattern printing as is commonly found on the edges of a device body can confuse a feature locator into finding noise features instead of actual balls. Furthermore, given that ball grids on BGAs are of varying patterns, this known method may not work very well on devices with sparsely populated corners.